const { defineConfig } = require('@vue/cli-service')

// 别名配置的方法
const path = require('path')
function resolve(paths) {
  return path.resolve(paths)
}
console.log('当前的环境是' + process.env.VUE_APP_NODE_ENV)
console.log('当前请求的地址是' + process.env.VUE_APP_BASEURL)
module.exports = defineConfig({
  transpileDependencies: true,
  lintOnSave: false,
  publicPath: '.', // 配置打包根路径
  outputDir: process.env.VUE_APP_DIR, // 动态配置打包文件名
  devServer: {
    port: 8080, //项目的接口
    proxy: {
      // 本地node服务器进行代理
      '/api': {
        target: process.env.VUE_APP_BASEURL, // 目标地址
        pathRewrite: { '^/api': '' } // 路径重写
      }
    }
  },
  chainWebpack: config => {
    // 配置别名, 合并webpack配置
    config.resolve.alias
      .set('&', resolve('src'))
      .set('assets', resolve('src/assets'))
      .set('components', resolve('src/components'))
      .set('pages', resolve('src/pages'))
      .set('layout', resolve('src/layout'))
      .set('base', resolve('src/base'))
      .set('static', resolve('src/static'))

    //设置打包hash
    config.output
      .filename(
        `assets/js/[name].${process.env.VUE_APP_APPVERSION}.${+new Date()}.js`
      )
      .chunkFilename(
        `assets/js/[name].${process.env.VUE_APP_APPVERSION}.${+new Date()}.js`
      )
      .end()

    // 如果filenameHashing设置为了false，可以通过这段代码给打包出的css文件增加hash值
    // config.plugin('extract-css').tap(args => [
    //   {
    //     filename: `assets/css/${
    //       process.env.VUE_APP_APPVERSION
    //     }.${+new Date()}.[name].css`,
    //     chunkFilename: `assets/css/${
    //       process.env.VUE_APP_APPVERSION
    //     }.${+new Date()}.[name].css`
    //   }
    // ])
  }
})
